﻿//Tên form : Chọn nhóm người dùng
//Người thực hiện: Hungtq - Ngày tạo : 08-02-06
//Mô tả: - Liệt kê danh sách người dùng của hệ thống
//Các yêu cầu ràng buộc : Mọi thông tin thay đổi phải thông báo đến người dùng,

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

using QLNHK.BLL;
using Infragistics.Win.UltraWinGrid;
using Infragistics.Win;
using Infragistics.Win.Misc;
using System.Web;
using Infragistics.Win.UltraWinTree;
using Infragistics.Win.UltraWinEditors;
using System.Web.Caching;
using QLNHK.Controls;

namespace QLNHK.QUANTRIHETHONG
{
	/// <summary>
	/// Summary description for FrmChonNguoiDung.
	/// </summary>
	public class FrmChonNguoiDung : System.Windows.Forms.Form
	{
		#region Variable Members

        private Infragistics.Win.Misc.UltraGroupBox ultraGroupBox1;
		/// <summary>
		/// DataSet dùng hiển thị dữ liệu bảng Người dùng trên lưới
		/// </summary>
		private System.Data.DataSet dsNguoiDung;
		private System.Data.DataColumn ID_NguoiDung;
		private System.Data.DataColumn ID_HoSo_NhanSu;
		private System.Data.DataColumn Ten_NguoiDung;
		private System.Data.DataColumn MatKhau;
		private System.Data.DataColumn NgayTao;
		private System.Data.DataColumn TinhTrang;
		private Infragistics.Win.UltraWinGrid.UltraGrid UGMain;
		protected Infragistics.Win.Misc.UltraButton btnLuu;
		protected Infragistics.Win.Misc.UltraButton btnDong;
		private System.ComponentModel.IContainer components;
		/// <summary>
		/// Id nhóm người dùng
		/// </summary>
		private int _idNhomNguoiDung;
		/// <summary>
		/// Mảng ID người dùng được chọn
		/// </summary>
		private ArrayList _arrIDNguoiDung;
		/// <summary>
		/// DataTable dùng hiển thị dữ liệu bảng Người dùng trên lưới
		/// </summary>
		private System.Data.DataTable dtChonNguoiDung;
        private System.Windows.Forms.ImageList imgGrid;
        private UltraGroupBox ultraGroupBox2;
		/// <summary>
		/// Lưu đầu đề FORM
		/// </summary>
		private string _caption;

		#endregion //Variable Members

		#region Properties
		public int IDNhomNguoiDung
		{
			set{ this._idNhomNguoiDung=value; }
			get{ return this._idNhomNguoiDung; }
		}

		public ArrayList ArrayIDNguoiDung
		{
			set{ this._arrIDNguoiDung=value; }
			get{ return this._arrIDNguoiDung; }
		}
		#endregion //Properties

		#region Constructor
		public FrmChonNguoiDung()
		{
			InitializeComponent();
		}

		#endregion //Constructor

		#region Dispose
		/// <summary>
		/// Clean up any resources being used.
		/// </summary>
		protected override void Dispose( bool disposing )
		{
			if( disposing )
			{
				if(components != null)
				{
					components.Dispose();
				}
			}
			base.Dispose( disposing );
		}

		#endregion //Dispose

		#region Windows Form Designer generated code
		/// <summary>
		/// Required method for Designer support - do not modify
		/// the contents of this method with the code editor.
		/// </summary>
		private void InitializeComponent()
		{
            this.components = new System.ComponentModel.Container();
            Infragistics.Win.Appearance appearance1 = new Infragistics.Win.Appearance();
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmChonNguoiDung));
            Infragistics.Win.Appearance appearance2 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance4 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance5 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance6 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance7 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance8 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance9 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance10 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance11 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance12 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance13 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance14 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance15 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance16 = new Infragistics.Win.Appearance();
            this.btnLuu = new Infragistics.Win.Misc.UltraButton();
            this.btnDong = new Infragistics.Win.Misc.UltraButton();
            this.UGMain = new Infragistics.Win.UltraWinGrid.UltraGrid();
            this.ultraGroupBox1 = new Infragistics.Win.Misc.UltraGroupBox();
            this.dsNguoiDung = new System.Data.DataSet();
            this.dtChonNguoiDung = new System.Data.DataTable();
            this.ID_NguoiDung = new System.Data.DataColumn();
            this.ID_HoSo_NhanSu = new System.Data.DataColumn();
            this.Ten_NguoiDung = new System.Data.DataColumn();
            this.MatKhau = new System.Data.DataColumn();
            this.NgayTao = new System.Data.DataColumn();
            this.TinhTrang = new System.Data.DataColumn();
            this.imgGrid = new System.Windows.Forms.ImageList(this.components);
            this.ultraGroupBox2 = new Infragistics.Win.Misc.UltraGroupBox();
            ((System.ComponentModel.ISupportInitialize)(this.UGMain)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.ultraGroupBox1)).BeginInit();
            this.ultraGroupBox1.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)(this.dsNguoiDung)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.dtChonNguoiDung)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.ultraGroupBox2)).BeginInit();
            this.ultraGroupBox2.SuspendLayout();
            this.SuspendLayout();
            // 
            // btnLuu
            // 
            this.btnLuu.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
            appearance1.Image = ((object)(resources.GetObject("appearance1.Image")));
            this.btnLuu.Appearance = appearance1;
            this.btnLuu.BackColorInternal = System.Drawing.SystemColors.Control;
            this.btnLuu.DialogResult = System.Windows.Forms.DialogResult.OK;
            this.btnLuu.Location = new System.Drawing.Point(222, 403);
            this.btnLuu.Name = "btnLuu";
            this.btnLuu.Size = new System.Drawing.Size(92, 24);
            this.btnLuu.TabIndex = 8;
            this.btnLuu.Text = "&Lưu";
            this.btnLuu.Click += new System.EventHandler(this.BtnEvent_Click);
            // 
            // btnDong
            // 
            this.btnDong.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
            appearance2.Image = ((object)(resources.GetObject("appearance2.Image")));
            this.btnDong.Appearance = appearance2;
            this.btnDong.BackColorInternal = System.Drawing.SystemColors.Control;
            this.btnDong.DialogResult = System.Windows.Forms.DialogResult.Cancel;
            this.btnDong.Location = new System.Drawing.Point(320, 403);
            this.btnDong.Name = "btnDong";
            this.btnDong.Size = new System.Drawing.Size(86, 24);
            this.btnDong.TabIndex = 9;
            this.btnDong.Text = "Đó&ng";
            this.btnDong.Click += new System.EventHandler(this.BtnEvent_Click);
            // 
            // UGMain
            // 
            appearance4.BackColor = System.Drawing.SystemColors.Window;
            appearance4.BorderColor = System.Drawing.SystemColors.InactiveCaption;
            this.UGMain.DisplayLayout.Appearance = appearance4;
            this.UGMain.DisplayLayout.AutoFitStyle = Infragistics.Win.UltraWinGrid.AutoFitStyle.ResizeAllColumns;
            this.UGMain.DisplayLayout.BorderStyle = Infragistics.Win.UIElementBorderStyle.Solid;
            this.UGMain.DisplayLayout.CaptionVisible = Infragistics.Win.DefaultableBoolean.False;
            appearance5.BackColor = System.Drawing.SystemColors.ActiveBorder;
            appearance5.BackColor2 = System.Drawing.SystemColors.ControlDark;
            appearance5.BackGradientStyle = Infragistics.Win.GradientStyle.Vertical;
            appearance5.BorderColor = System.Drawing.SystemColors.Window;
            this.UGMain.DisplayLayout.GroupByBox.Appearance = appearance5;
            appearance6.ForeColor = System.Drawing.SystemColors.GrayText;
            this.UGMain.DisplayLayout.GroupByBox.BandLabelAppearance = appearance6;
            this.UGMain.DisplayLayout.GroupByBox.BorderStyle = Infragistics.Win.UIElementBorderStyle.Solid;
            this.UGMain.DisplayLayout.GroupByBox.Hidden = true;
            appearance7.BackColor = System.Drawing.SystemColors.ControlLightLight;
            appearance7.BackColor2 = System.Drawing.SystemColors.Control;
            appearance7.BackGradientStyle = Infragistics.Win.GradientStyle.Horizontal;
            appearance7.ForeColor = System.Drawing.SystemColors.GrayText;
            this.UGMain.DisplayLayout.GroupByBox.PromptAppearance = appearance7;
            this.UGMain.DisplayLayout.MaxColScrollRegions = 1;
            this.UGMain.DisplayLayout.MaxRowScrollRegions = 1;
            appearance8.BackColor = System.Drawing.SystemColors.Window;
            appearance8.ForeColor = System.Drawing.SystemColors.ControlText;
            this.UGMain.DisplayLayout.Override.ActiveCellAppearance = appearance8;
            appearance9.BackColor = System.Drawing.SystemColors.Highlight;
            appearance9.ForeColor = System.Drawing.SystemColors.HighlightText;
            this.UGMain.DisplayLayout.Override.ActiveRowAppearance = appearance9;
            this.UGMain.DisplayLayout.Override.BorderStyleCell = Infragistics.Win.UIElementBorderStyle.Dotted;
            this.UGMain.DisplayLayout.Override.BorderStyleRow = Infragistics.Win.UIElementBorderStyle.Dotted;
            appearance10.BackColor = System.Drawing.SystemColors.Window;
            this.UGMain.DisplayLayout.Override.CardAreaAppearance = appearance10;
            appearance11.BorderColor = System.Drawing.Color.Silver;
            appearance11.TextTrimming = Infragistics.Win.TextTrimming.EllipsisCharacter;
            this.UGMain.DisplayLayout.Override.CellAppearance = appearance11;
            this.UGMain.DisplayLayout.Override.CellClickAction = Infragistics.Win.UltraWinGrid.CellClickAction.RowSelect;
            this.UGMain.DisplayLayout.Override.CellPadding = 0;
            appearance12.BackColor = System.Drawing.SystemColors.Control;
            appearance12.BackColor2 = System.Drawing.SystemColors.ControlDark;
            appearance12.BackGradientAlignment = Infragistics.Win.GradientAlignment.Element;
            appearance12.BackGradientStyle = Infragistics.Win.GradientStyle.Horizontal;
            appearance12.BorderColor = System.Drawing.SystemColors.Window;
            this.UGMain.DisplayLayout.Override.GroupByRowAppearance = appearance12;
            appearance13.TextHAlignAsString = "Left";
            this.UGMain.DisplayLayout.Override.HeaderAppearance = appearance13;
            this.UGMain.DisplayLayout.Override.HeaderClickAction = Infragistics.Win.UltraWinGrid.HeaderClickAction.SortMulti;
            this.UGMain.DisplayLayout.Override.HeaderStyle = Infragistics.Win.HeaderStyle.WindowsXPCommand;
            appearance14.BackColor = System.Drawing.SystemColors.Window;
            appearance14.BorderColor = System.Drawing.Color.Silver;
            this.UGMain.DisplayLayout.Override.RowAppearance = appearance14;
            this.UGMain.DisplayLayout.Override.RowSelectors = Infragistics.Win.DefaultableBoolean.False;
            appearance15.BackColor = System.Drawing.SystemColors.ControlLight;
            this.UGMain.DisplayLayout.Override.TemplateAddRowAppearance = appearance15;
            this.UGMain.DisplayLayout.ScrollBounds = Infragistics.Win.UltraWinGrid.ScrollBounds.ScrollToFill;
            this.UGMain.DisplayLayout.ScrollStyle = Infragistics.Win.UltraWinGrid.ScrollStyle.Immediate;
            this.UGMain.DisplayLayout.ViewStyleBand = Infragistics.Win.UltraWinGrid.ViewStyleBand.OutlookGroupBy;
            this.UGMain.Dock = System.Windows.Forms.DockStyle.Fill;
            this.UGMain.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.UGMain.Location = new System.Drawing.Point(3, 17);
            this.UGMain.Name = "UGMain";
            this.UGMain.Size = new System.Drawing.Size(384, 360);
            this.UGMain.TabIndex = 11;
            this.UGMain.InitializeLayout += new Infragistics.Win.UltraWinGrid.InitializeLayoutEventHandler(this.UGMain_InitializeLayout);
            this.UGMain.CellChange += new Infragistics.Win.UltraWinGrid.CellEventHandler(this.UGMain_CellChange);
            this.UGMain.BeforeRowsDeleted += new Infragistics.Win.UltraWinGrid.BeforeRowsDeletedEventHandler(this.UGMain_BeforeRowsDeleted);
            this.UGMain.KeyDown += new System.Windows.Forms.KeyEventHandler(this.UGMain_KeyDown);
            // 
            // ultraGroupBox1
            // 
            this.ultraGroupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
            | System.Windows.Forms.AnchorStyles.Left) 
            | System.Windows.Forms.AnchorStyles.Right)));
            appearance16.BackColor = System.Drawing.Color.Transparent;
            this.ultraGroupBox1.Appearance = appearance16;
            this.ultraGroupBox1.Controls.Add(this.UGMain);
            this.ultraGroupBox1.Location = new System.Drawing.Point(19, 17);
            this.ultraGroupBox1.Name = "ultraGroupBox1";
            this.ultraGroupBox1.Size = new System.Drawing.Size(390, 380);
            this.ultraGroupBox1.TabIndex = 12;
            this.ultraGroupBox1.Text = "Danh sách người dùng";
            this.ultraGroupBox1.ViewStyle = Infragistics.Win.Misc.GroupBoxViewStyle.Office2007;
            // 
            // dsNguoiDung
            // 
            this.dsNguoiDung.DataSetName = "dsNguoiDung";
            this.dsNguoiDung.Locale = new System.Globalization.CultureInfo("en-US");
            this.dsNguoiDung.Tables.AddRange(new System.Data.DataTable[] {
            this.dtChonNguoiDung});
            // 
            // dtChonNguoiDung
            // 
            this.dtChonNguoiDung.Columns.AddRange(new System.Data.DataColumn[] {
            this.ID_NguoiDung,
            this.ID_HoSo_NhanSu,
            this.Ten_NguoiDung,
            this.MatKhau,
            this.NgayTao,
            this.TinhTrang});
            this.dtChonNguoiDung.TableName = "tb_NGUOIDUNG";
            // 
            // ID_NguoiDung
            // 
            this.ID_NguoiDung.ColumnName = "ID_NguoiDung";
            this.ID_NguoiDung.DataType = typeof(int);
            // 
            // ID_HoSo_NhanSu
            // 
            this.ID_HoSo_NhanSu.Caption = "ID_HoSo_NhanSu";
            this.ID_HoSo_NhanSu.ColumnName = "ID_HoSo_NhanSu";
            this.ID_HoSo_NhanSu.DataType = typeof(int);
            // 
            // Ten_NguoiDung
            // 
            this.Ten_NguoiDung.Caption = "Tên người dùng";
            this.Ten_NguoiDung.ColumnName = "Ten_NguoiDung";
            // 
            // MatKhau
            // 
            this.MatKhau.Caption = "Mật khẩu";
            this.MatKhau.ColumnName = "MatKhau";
            // 
            // NgayTao
            // 
            this.NgayTao.Caption = "Ngày tạo";
            this.NgayTao.ColumnName = "NgayTao";
            this.NgayTao.DataType = typeof(System.DateTime);
            // 
            // TinhTrang
            // 
            this.TinhTrang.Caption = "Tình trạng";
            this.TinhTrang.ColumnName = "TinhTrang";
            this.TinhTrang.DataType = typeof(bool);
            // 
            // imgGrid
            // 
            this.imgGrid.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imgGrid.ImageStream")));
            this.imgGrid.TransparentColor = System.Drawing.Color.Transparent;
            this.imgGrid.Images.SetKeyName(0, "");
            this.imgGrid.Images.SetKeyName(1, "");
            // 
            // ultraGroupBox2
            // 
            this.ultraGroupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
            | System.Windows.Forms.AnchorStyles.Left) 
            | System.Windows.Forms.AnchorStyles.Right)));
            this.ultraGroupBox2.Controls.Add(this.ultraGroupBox1);
            this.ultraGroupBox2.Controls.Add(this.btnLuu);
            this.ultraGroupBox2.Controls.Add(this.btnDong);
            this.ultraGroupBox2.Location = new System.Drawing.Point(-7, -5);
            this.ultraGroupBox2.Name = "ultraGroupBox2";
            this.ultraGroupBox2.Size = new System.Drawing.Size(428, 445);
            this.ultraGroupBox2.TabIndex = 13;
            this.ultraGroupBox2.ViewStyle = Infragistics.Win.Misc.GroupBoxViewStyle.Office2007;
            // 
            // FrmChonNguoiDung
            // 
            this.AcceptButton = this.btnLuu;
            this.AutoScaleBaseSize = new System.Drawing.Size(5, 14);
            this.BackColor = System.Drawing.Color.White;
            this.CancelButton = this.btnDong;
            this.ClientSize = new System.Drawing.Size(414, 434);
            this.Controls.Add(this.ultraGroupBox2);
            this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.Name = "FrmChonNguoiDung";
            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
            this.Text = "Chọn người dùng";
            this.Load += new System.EventHandler(this.FrmChonNguoiDung_Load);
            ((System.ComponentModel.ISupportInitialize)(this.UGMain)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.ultraGroupBox1)).EndInit();
            this.ultraGroupBox1.ResumeLayout(false);
            ((System.ComponentModel.ISupportInitialize)(this.dsNguoiDung)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.dtChonNguoiDung)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.ultraGroupBox2)).EndInit();
            this.ultraGroupBox2.ResumeLayout(false);
            this.ResumeLayout(false);

		}
		#endregion

		#region Form Events
		// Author: Hungtq . Date: 2/9/2006.
		// Modifier: Hungtq. Date:  2/9/2006.
		// Liệt kê những gì đã chỉnh sửa:		
		/// <summary>
		/// Handles the InitializeLayout event of the UGMain control.
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void UGMain_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e)
		{
			try
			{
                UltraGridControls.SetGridStyle(UGMain);
                HeaderCheckBoxCreationFilter filter = new HeaderCheckBoxCreationFilter();

                // Attach an event handler for when the CheckBox in the column header is clicked.
                filter.CheckChanged += new HeaderCheckBoxCreationFilter.HeaderCheckBoxClickedHandler(OnHeaderCheckBoxCheckChanged);

                // Assign the creation filter to the grid's CreationFilter property.
                this.UGMain.CreationFilter = filter;

    			e.Layout.Override.CellAppearance.BorderAlpha = Alpha.Transparent; 
				e.Layout.Override.RowAppearance.BorderColor = SystemColors.Window;
				e.Layout.Bands[0].Columns["Chon"].CellClickAction = Infragistics.Win.UltraWinGrid.CellClickAction.EditAndSelectText;
				e.Layout.Bands[0].Columns["ID_NguoiDung"].Hidden = true;
				e.Layout.Bands[0].Columns["ID_HoSo_NhanSu"].Hidden=true;
				e.Layout.Bands[0].Columns["Ten_NguoiDung"].Header.Caption="Tên người dùng";
				e.Layout.Bands[0].Columns["Ten_NguoiDung"].CellAppearance.Image = imgGrid.Images[0];
				e.Layout.Bands[0].Columns["MatKhau"].Hidden=true;
				e.Layout.Bands[0].Columns["NgayTao"].Hidden=true;
				e.Layout.Bands[0].Columns["TinhTrang"].Hidden=true;	
				e.Layout.Bands[0].Columns["IsAdministrator"].Hidden=true;	
				e.Layout.Bands[0].Columns["Chon"].Header.Caption="Chọn";
			}
			catch{}
		}
        protected void OnHeaderCheckBoxCheckChanged(object sender, HeaderCheckBoxCreationFilter.HeaderCheckBoxEventArgs e)
        {
          
            // Loop over all of the rows in the first band and set the value of the cell in the 
            // column whose header's CheckBox was clicked.
            foreach (UltraGridRow row in this.UGMain.Rows)
            {
                row.Cells[e.Column.Key].Value = e.CurrentCheckState;
                this.setChanged(true);
            }
            // Calling UpdateData will remove the "pencil" icons in the row selectors of the 
            // grid.  That icon appears when a row has been edited.
            this.UGMain.UpdateData();
        }

		// Author: Hungtq . Date: 2/9/2006.
		// Modifier: Hungtq. Date:  2/9/2006.
		// Liệt kê những gì đã chỉnh sửa:
		/// <summary>
		/// Handles the Click event of the BtnEvent control.
		/// </summary>
		/// <param name="sender">Đối tượng của hàm.</param>
		/// <param name="e">Sự kiện khởi tạo cho  .</param>
		private void BtnEvent_Click(object sender,System.EventArgs e)
		{
			try
			{
				UltraButton btn = (UltraButton)(sender);
				switch(btn.Name)
				{
					case"btnLuu":
						this.save();
						break;
					case"btnDong":
						this.Close();
						break;
				}
			}
			catch(Exception ex){ throw ex; }
		}

		// Author: Hungtq . Date: 2/9/2006.
		// Modifier: Hungtq. Date:  2/9/2006.
		// Liệt kê những gì đã chỉnh sửa:
		/// <summary>
		/// Handles the Click event of the CellChange.
		/// </summary>
		/// <param name="sender">Đối tượng của hàm.</param>
		/// <param name="e">Sự kiện khởi tạo cho  .</param>
		private void UGMain_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
		{
			try
			{
				UGMain.UpdateData();
				this.setChanged(true);
			}
			catch(Exception ex){ throw ex;}
		}
		// Author: Hungtq . Date: 2/9/2006.
		// Modifier: Hungtq. Date:  2/9/2006.
		// Liệt kê những gì đã chỉnh sửa:		
		/// <summary>
		/// Form load
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void FrmChonNguoiDung_Load(object sender, System.EventArgs e)
		{
			try
			{
				//Lấy đầu đề Form
				this._caption = this.Text;
				//Lấy danh sách nhóm
				dsNguoiDung = this.loadDataNguoiDung();
			
				// Binding 
				if(dsNguoiDung!=null && dsNguoiDung.Tables[0].Rows.Count!=0)
				{
					UGMain.DataSource = dsNguoiDung.Tables[0];
					UGMain.DataBind();
					//Chọn các ID người dùng thuộc trong 1 nhóm
					this.importIDNguoiDung(dsNguoiDung,this.ArrayIDNguoiDung);
				}
				else
				{
					UGMain.CreationFilter =new EmptyGridCreationFilter("Không tồn tại người dùng trong hệ thống.");
				}

				//Thiết lập trạng thái của Button
				this.setChanged(false);
			}
			catch(Exception ex){throw ex;}
		}

		// Author: Hungtq . Date: 2/9/2006.
		// Modifier: Hungtq. Date:  2/9/2006.
		// Liệt kê những gì đã chỉnh sửa:
		/// <summary>
		/// Sự kiện chọn người dùng khi nhấn SPACE keyboard 
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void UGMain_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
		{
			try
			{
				if(e.KeyCode == Keys.Escape)
				{
					this.Close();
				}

				if(e.KeyCode == Keys.Space)
				{
					//Nếu có người dùng trong danh sách
					if(this.UGMain.Rows.Count!=0)
					{
						//Xử lý chọn người dùng khi nhấn SPACEBAR
						//Đánh dấu người dùng được chọn
						this.UGMain.ActiveRow.Cells["Chon"].Value = !Convert.ToBoolean(this.UGMain.ActiveRow.Cells["Chon"].Value);
						//Thiết lập trạng thái form thay đổi
						this.setChanged(true);
					}
				}
			}
			catch(Exception ex){ throw ex; }		
		}

		// Author: Hungtq . Date: 2/9/2006.
		// Modifier: Hungtq. Date:  2/9/2006.
		// Liệt kê những gì đã chỉnh sửa:
		/// <summary>
		/// Kiểm tra trước khi xóa row
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void UGMain_BeforeRowsDeleted(object sender, Infragistics.Win.UltraWinGrid.BeforeRowsDeletedEventArgs e)
		{
			try
			{
				//Cancel sự kiện thông báo xóa bản ghi trên lưới được kế thừa từ form Main
				e.Cancel = true;
			}
			catch(Exception ex){ throw ex;}
		}
		#endregion //Form Events

		#region Private Methods
		// Author: Hungtq . Date: 2/9/2006.
		// Modifier: Hungtq. Date:  2/9/2006.
		// Liệt kê những gì đã chỉnh sửa:
		/// <summary>
		/// Lưu thông tin người dùng được chọn.
		/// </summary>
		private void save()
		{
			try
			{		
				//Lấy danh sách ngưới dùng được chọn
				this.ArrayIDNguoiDung=this.getArrayIDNguoiDung(dsNguoiDung);
			}
			catch(Exception ex)
			{
				throw ex;
			}
		}
		// Author: Hungtq . Date: 2/9/2006.
		// Modifier: Hungtq. Date:  2/9/2006.
		// Liệt kê những gì đã chỉnh sửa:
		/// <summary>
		/// Đánh dấu chọn các ID người dùng được chọn vào nhóm
		/// </summary>
		/// <param name="dsNguoiDung">DataSet danh sách người dùng hiện tại trong hệ thống</param>
		/// <param name="pArrayIDNguoiDung">Mảng ID người dùng</param>
		private void importIDNguoiDung(DataSet pDataSetNguoiDung, ArrayList pArrayIDNguoiDung)
		{
			try
			{		
				if(pArrayIDNguoiDung!=null && pArrayIDNguoiDung.Count!=0)
				{
					foreach(DataRow dr in pDataSetNguoiDung.Tables[0].Rows)
					{
						//Chọn các ID người dùng thuộc trong nhóm
						dr["Chon"] = pArrayIDNguoiDung.Contains(dr["ID_NguoiDung"]);
					}
				}
			}
			catch(Exception ex){ throw ex; }
		}
		// Author: Hungtq . Date: 2/9/2006.
		// Modifier: Hungtq. Date:  2/9/2006.
		// Liệt kê những gì đã chỉnh sửa:
		/// <summary>
		/// Lấy thông tin danh sách người dùng từ CSDL.
		/// </summary>
		/// <returns>DataSet</returns>
		private DataSet loadDataNguoiDung()
		{
			try
			{
				DataSet ds=new DataSet();
				// Tạo instance của lớp Cls_NHOM_NGUOIDUNG
				Cls_NGUOIDUNG objNguoiDung=new Cls_NGUOIDUNG();
				//Lấy danh sách nhóm
				ds = objNguoiDung.ListByAll();
				//Tạo cột "Chon"
				DataColumn colChon=new DataColumn();
				colChon.ColumnName="Chon";
				colChon.DataType=typeof(System.Boolean);
				colChon.DefaultValue=false;
				colChon.Caption="Chọn";
				ds.Tables[0].Columns.Add(colChon);
				ds.AcceptChanges();

				return ds;
			}
			catch
			{
				return null;
			}
		}
		// Author: Hungtq . Date: 2/9/2006.
		// Modifier: Hungtq. Date:  2/9/2006.
		// Liệt kê những gì đã chỉnh sửa:
		/// <summary>
		/// Lấy danh sách người dùng được chọn
		/// </summary>
		/// <returns>ArrayList</returns>
		private ArrayList getArrayIDNguoiDung(DataSet pDataSetNguoiDung)
		{
			ArrayList arrNguoiDungChon=new ArrayList(); // Mảng danh sách người dùng được chọn
			try
			{
				foreach(DataRow dr in pDataSetNguoiDung.Tables[0].Rows)
				{
					if(Convert.ToBoolean(dr["Chon"])==true)
					{
						arrNguoiDungChon.Add(dr["ID_NguoiDung"]);
					}
				}
			}
			catch(Exception ex){ throw ex; }
				
			return arrNguoiDungChon;
		}
		// Author: Hungtq . Date: 2/9/2006.
		// Modifier: Hungtq. Date:  2/9/2006.
		// Liệt kê những gì đã chỉnh sửa:
		/// <summary>
		/// Thiết lập trạng thái thay đổi đầu đề của FORM khi có thay đổi
		/// </summary>
		/// <param name="isChanged">Trạng thái FORM (True: Có thay đổi)</param>
		private void setChanged(bool isChanged)
		{
			if(isChanged)
			{
				this.Text = _caption + "*";
				this.btnLuu.Enabled=isChanged;
			}
			else
			{
				this.Text = _caption ;
				this.btnLuu.Enabled=isChanged;
			}
		}

		// Author: Hungtq . Date: 2/9/2006.
		// Modifier: Hungtq. Date:  2/9/2006.
		// Liệt kê những gì đã chỉnh sửa:
		/// <summary>
		/// Kiểm tra thông tin có thay đổi?
		/// </summary>
		/// <param name="pDataSet">DataSet lưu dữ liệu</param>
		/// <returns>Boolean</returns>
		private bool checkIsChanged(DataSet pDataSet)
		{
			try
			{
				return pDataSet.HasChanges();
			}
			catch(Exception ex){ throw ex; }
		}
		#endregion //Private Methods



	}
}
